/**
 * 给定一个二叉树，找出其最大深度。
 * 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
 */


// 递归
var maxDepth = function (root) {
    if (root === null) return 0
    return 1 + Math.max(maxDepth(root.left), maxDepth(root.right))
};

// bfs
var maxDepth = function (root) {
    if (root === null) return null
    const queue = [root]
    let depth = 0
    while (queue.length !== 0) {
        const curLength = queue.length
        for (let i = 0; i <= curLength - 1; i++) {
            const cur = queue.shift()
            if (cur.left) {queue.push(cur.left)}
            if(cur.right) {queue.push(cur.right)}
        }
        depth ++
    }
    return depth
};
